/*
 * Copyright 2022 The Open Islands Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.openislands.oi.pojo.qo;

import org.openislands.oi.constant.*;
import org.openislands.oi.pojo.base.TaskIdentityPOJO;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

public class TaskCreateQO extends TaskIdentityPOJO implements Serializable {
    //from job
    private String leaderNode;
    private Map<RoleType, List<String>>  nodes;

    //from create
    private ExecutionEnvironment executionEnvironment;
    private OperatorType operatorType;
    private AlgorithmType operatorAlgorithm;
    private String operatorVendor;
    private String operatorVersion;
    private DataFormat outputDataFormat;
    private ModelFormat outputModelFormat;
    private String taskConfig;

    private TaskState nextState;
    private TaskState state;
    private Integer autoRetries;

    public OperatorType getOperatorType() {
        return operatorType;
    }

    public void setOperatorType(OperatorType operatorType) {
        this.operatorType = operatorType;
    }

    public AlgorithmType getOperatorAlgorithm() {
        return operatorAlgorithm;
    }

    public void setOperatorAlgorithm(AlgorithmType operatorAlgorithm) {
        this.operatorAlgorithm = operatorAlgorithm;
    }

    public String getTaskConfig() {
        return taskConfig;
    }

    public void setTaskConfig(String taskConfig) {
        this.taskConfig = taskConfig;
    }

    public TaskState getState() {
        return state;
    }

    public void setState(TaskState state) {
        this.state = state;
    }

    public Integer getAutoRetries() {
        return autoRetries;
    }

    public void setAutoRetries(Integer autoRetries) {
        this.autoRetries = autoRetries;
    }

    public String getLeaderNode() {
        return leaderNode;
    }

    public void setLeaderNode(String leaderNode) {
        this.leaderNode = leaderNode;
    }

    public Map<RoleType, List<String>> getNodes() {
        return nodes;
    }

    public void setNodes(Map<RoleType, List<String>> nodes) {
        this.nodes = nodes;
    }

    public String getOperatorVendor() {
        return operatorVendor;
    }

    public void setOperatorVendor(String operatorVendor) {
        this.operatorVendor = operatorVendor;
    }

    public String getOperatorVersion() {
        return operatorVersion;
    }

    public void setOperatorVersion(String operatorVersion) {
        this.operatorVersion = operatorVersion;
    }

    public TaskState getNextState() {
        return nextState;
    }

    public void setNextState(TaskState nextState) {
        this.nextState = nextState;
    }

    public DataFormat getOutputDataFormat() {
        return outputDataFormat;
    }

    public void setOutputDataFormat(DataFormat outputDataFormat) {
        this.outputDataFormat = outputDataFormat;
    }

    public ModelFormat getOutputModelFormat() {
        return outputModelFormat;
    }

    public void setOutputModelFormat(ModelFormat outputModelFormat) {
        this.outputModelFormat = outputModelFormat;
    }

    public ExecutionEnvironment getExecutionEnvironment() {
        return executionEnvironment;
    }

    public void setExecutionEnvironment(ExecutionEnvironment executionEnvironment) {
        this.executionEnvironment = executionEnvironment;
    }
}
